﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;

namespace EasyTrader.Form
{
    public partial class JisuWaveHogaSummitSysSetFrm : System.Windows.Forms.Form
    {
        public JisuWaveHogaSummitSysSetFrm()
        {
            InitializeComponent();
            InitControl();
        }

        private void InitControl()
        {
            comboFirstSig.SelectedIndex = JisuWaveHogaSummitSysVar.FirstSignalType;

            int selectedIndex = comboMinTurnHeight.FindString(JisuWaveHogaSummitSysVar.MinTurnHeight.ToString());
            comboMinTurnHeight.SelectedIndex = selectedIndex;

            selectedIndex = comboLossMargin.FindString(JisuWaveHogaSummitSysVar.LossMargin.ToString());
            comboLossMargin.SelectedIndex = selectedIndex;

            selectedIndex = comboPerLoss.FindString(JisuWaveHogaSummitSysVar.PerLossLiquidValue.ToString());
            comboPerLoss.SelectedIndex = selectedIndex;

            selectedIndex = comboPerProfit.FindString(JisuWaveHogaSummitSysVar.PerProfitLiquidValue.ToString());
            comboPerProfit.SelectedIndex = selectedIndex;

            tbMinTurnHogaDelta.Text = JisuWaveHogaSummitSysVar.MinTurnHogaDelta.ToString();

            comboSysStartHour.SelectedIndex = JisuWaveHogaSummitSysVar.SysStartHour;
            comboSysStartMin.SelectedIndex = JisuWaveHogaSummitSysVar.SysStartMin;
            comboSysEndHour.SelectedIndex = JisuWaveHogaSummitSysVar.SysEndHour;
            comboSysEndMin.SelectedIndex = JisuWaveHogaSummitSysVar.SysEndMin;
            comboOrderStartHour.SelectedIndex = JisuWaveHogaSummitSysVar.OrderStartHour;
            comboOrderStartMin.SelectedIndex = JisuWaveHogaSummitSysVar.OrderStartMin;
            comboOrderEndHour.SelectedIndex = JisuWaveHogaSummitSysVar.OrderEndHour;
            comboOrderEndMin.SelectedIndex = JisuWaveHogaSummitSysVar.OrderEndMin;
            comboOrderStartSignal.SelectedIndex = JisuWaveHogaSummitSysVar.SysStartState;
            comboOrderEndSignal.SelectedIndex = JisuWaveHogaSummitSysVar.SysEndState;

            tbPerOrderAmount.Text = JisuWaveHogaSummitSysVar.PerOrderAmount.ToString();
            tbMinTurnHogaMaxMinDelta.Text = JisuWaveHogaSummitSysVar.MinTurnHogaMaxMinDelta.ToString();

            /*
            if (JisuWaveHogaSummitSysVar.EnableLossLiquid == true)
            {
                cbPerLossLiquid.Checked = true;
            }
            else
            {
                cbPerLossLiquid.Checked = false;
            }

            if (JisuWaveHogaSummitSysVar.EnableProfitLiquid == true)
            {
                cbPerProfitLiquid.Checked = true;
            }
            else
            {
                cbPerProfitLiquid.Checked = false;
            }*/

            if (JisuWaveHogaSummitSysVar.EnterByClose == true)
            {
                cbEnterByClose.Checked = true;
            }
            else
            {
                cbEnterByClose.Checked = false;
            }

            if (JisuWaveHogaSummitSysVar.LiquidByClose == true)
            {
                cbLiquidByClose.Checked = true;
            }
            else
            {
                cbLiquidByClose.Checked = false;
            }
        }

        private void comboFirstSig_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboFirstSig.SelectedIndex;
            if (selectedIndex == -1)
                return;
            JisuWaveHogaSummitSysVar.FirstSignalType = Convert.ToInt32(selectedIndex);

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("FirstSignalType", JisuWaveHogaSummitSysVar.FirstSignalType.ToString());
        }

        private void comboMinTurnHeight_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selText = comboMinTurnHeight.SelectedItem.ToString();
            if (selText == "")
                return;
            JisuWaveHogaSummitSysVar.MinTurnHeight = Convert.ToDouble(selText);

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("MinTurnHeight", JisuWaveHogaSummitSysVar.MinTurnHeight.ToString());
        }

        private void comboLossMargin_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selText = comboLossMargin.SelectedItem.ToString();
            if (selText == "")
                return;
            JisuWaveHogaSummitSysVar.LossMargin = Convert.ToDouble(selText);

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("LossMargin", JisuWaveHogaSummitSysVar.LossMargin.ToString());
        }

        private void tbMinTurnHogaDelta_TextChanged(object sender, EventArgs e)
        {
            string selText = tbMinTurnHogaDelta.Text;
            if (selText == "")
                return;
            JisuWaveHogaSummitSysVar.MinTurnHogaDelta = Convert.ToInt32(selText);

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("MinTurnHogaDelta", JisuWaveHogaSummitSysVar.MinTurnHogaDelta.ToString());
        }

        private void comboSysStartHour_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboSysStartHour.SelectedIndex;

            JisuWaveHogaSummitSysVar.SysStartHour = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("SysStartHour", JisuWaveHogaSummitSysVar.SysStartHour.ToString());
        }

        private void comboSysStartMin_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboSysStartMin.SelectedIndex;

            JisuWaveHogaSummitSysVar.SysStartMin = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("SysStartMin", JisuWaveHogaSummitSysVar.SysStartMin.ToString());
        }

        private void comboSysEndHour_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboSysEndHour.SelectedIndex;

            JisuWaveHogaSummitSysVar.SysEndHour = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("SysEndHour", JisuWaveHogaSummitSysVar.SysEndHour.ToString());
        }

        private void comboSysEndMin_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboSysEndMin.SelectedIndex;

            JisuWaveHogaSummitSysVar.SysEndMin = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("SysEndMin", JisuWaveHogaSummitSysVar.SysEndMin.ToString());
        }

        private void comboOrderStartHour_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderStartHour.SelectedIndex;

            JisuWaveHogaSummitSysVar.OrderStartHour = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderStartHour", JisuWaveHogaSummitSysVar.OrderStartHour.ToString());
        }

        private void comboOrderStartMin_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderStartMin.SelectedIndex;

            JisuWaveHogaSummitSysVar.OrderStartMin = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderStartMin", JisuWaveHogaSummitSysVar.OrderStartMin.ToString());
        }

        private void comboOrderEndHour_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderEndHour.SelectedIndex;

            JisuWaveHogaSummitSysVar.OrderEndHour = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderEndHour", JisuWaveHogaSummitSysVar.OrderEndHour.ToString());
        }

        private void comboOrderEndMin_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderEndMin.SelectedIndex;

            JisuWaveHogaSummitSysVar.OrderEndMin = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderEndMin", JisuWaveHogaSummitSysVar.OrderEndMin.ToString());
        }

        private void comboOrderStartSignal_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderStartSignal.SelectedIndex;

            JisuWaveHogaSummitSysVar.SysStartState = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderStartSignal", JisuWaveHogaSummitSysVar.SysStartState.ToString());
        }

        private void comboOrderEndSignal_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderEndSignal.SelectedIndex;

            JisuWaveHogaSummitSysVar.SysEndState = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderEndSignal", JisuWaveHogaSummitSysVar.SysEndState.ToString());
        }

        private void cbPerLossLiquidApply_CheckedChanged(object sender, EventArgs e)
        {
            string selText = "";
            if (cbPerLossLiquid.Checked == true)
            {
                selText = "True";
                //JisuWaveHogaSummitSysVar.EnableLossLiquid = true;
            }
            else
            {
                selText = "False";
                //JisuWaveHogaSummitSysVar.EnableLossLiquid = false;
            }


            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("EnableLossLiquid", selText);
        }

        private void cbPerProfitLiquidApply_CheckedChanged(object sender, EventArgs e)
        {
            string selText = "";
            if (cbPerProfitLiquid.Checked == true)
            {
                selText = "True";
                //JisuWaveHogaSummitSysVar.EnableProfitLiquid = true;
            }
            else
            {
                selText = "False";
                //JisuWaveHogaSummitSysVar.EnableProfitLiquid = false;
            }


            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("EnableProfitLiquid", selText);
        }

        private void comboLossStopAll_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selText = comboPerLoss.SelectedItem.ToString();
            if (selText == "")
                return;
            //JisuWaveHogaSummitSysVar.LossLiquidValue = Convert.ToDouble(selText);

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            //rk.SetValue("LossLiquidValue", JisuWaveHogaSummitSysVar.LossLiquidValue.ToString());
        }

        private void comboProfitStopAll_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selText = comboPerProfit.SelectedItem.ToString();
            if (selText == "")
                return;
            //JisuWaveHogaSummitSysVar.ProfitLiquidValue = Convert.ToDouble(selText);

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            //rk.SetValue("ProfitLiquidValue", JisuWaveHogaSummitSysVar.ProfitLiquidValue.ToString());
        }

        private void btnSetFirstSignal_Click(object sender, EventArgs e)
        {
            System.Windows.Forms.Form frmchild = new EasyTrader.Form.FirstSigSetFrm();
            frmchild.Show();
        }

        private void tbPerOrderAmount_TextChanged(object sender, EventArgs e)
        {
            string selText = tbPerOrderAmount.Text;
            if (selText == "")
                return;
            JisuWaveHogaSummitSysVar.PerOrderAmount = Convert.ToInt32(selText);

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("PerOrderAmount", JisuWaveHogaSummitSysVar.PerOrderAmount.ToString());
        }

        private void tbMinTurnHogaMaxMinDelta_TextChanged(object sender, EventArgs e)
        {
            string selText = tbMinTurnHogaMaxMinDelta.Text;
            if (selText == "")
                return;
            JisuWaveHogaSummitSysVar.MinTurnHogaMaxMinDelta = Convert.ToInt32(selText);

            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("MinTurnHogaMaxMinDelta", JisuWaveHogaSummitSysVar.MinTurnHogaMaxMinDelta.ToString());
        }

        private void label5_Click(object sender, EventArgs e)
        {

        }

        private void cbEnterByClose_CheckedChanged(object sender, EventArgs e)
        {
            string selText = "";
            if (cbEnterByClose.Checked == true)
            {
                selText = "True";
                JisuWaveHogaSummitSysVar.EnterByClose = true;
            }
            else
            {
                selText = "False";
                JisuWaveHogaSummitSysVar.EnterByClose = false;
            }


            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("EnterByClose", selText);
        }

        private void cbLiquidByClose_CheckedChanged(object sender, EventArgs e)
        {
            string selText = "";
            if (cbLiquidByClose.Checked == true)
            {
                selText = "True";
                JisuWaveHogaSummitSysVar.LiquidByClose = true;
            }
            else
            {
                selText = "False";
                JisuWaveHogaSummitSysVar.LiquidByClose = false;
            }


            string regSubkey = "Software\\EasyTrader\\HogaJisuSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("LiquidByClose", selText);
        }

        private void HogaJisuSysSetFrm_Load(object sender, EventArgs e)
        {

        }
    }
}
